#include <iostream>

class MyClass {
public:
    void modify() {  // 修改成员变量的非const方法
        data++;
    }

    void display() const {  // const成员函数，不修改数据
        std::cout << "Data: " << data << std::endl;
    }

private:
    int data = 0;
};

void process(const MyClass& obj) {
    obj.display();  // 正常调用const成员函数

    // 尝试调用modify()将导致编译错误，因为obj是const
    // obj.modify();

    // 使用const_cast来移除const
    MyClass& modifiable = const_cast<MyClass&>(obj);
    modifiable.modify();  // 现在可以调用modify()

    modifiable.display();  // 查看修改后的数据
}

int main() {
    MyClass myObject;
    process(myObject);
    return 0;
}